Заданы три натуральных числа a, b и c.
Определите, существует ли равнобедренный треугольник с длинами этих сторон.
Вход. Три
натуральных числа a, b и c.
Выход. Выведите
сумму заданных чисел, если существует равнобедренный треугольник с длинами
сторон a, b, c и “No” в
противном случае.
Пример входа 1 |
Пример выхода 1 |
7 7 3 |
17 |
|
|
Пример входа 2 |
Пример выхода 2 |
4 6 9 |
No |
условный оператор
Треугольник является равнобедренным, если хотя бы две
его стороны равны. То есть следует проверить выполнение условия:
if (a == b || b == c || a == c)
Однако в
задаче также следует проверить условие существования треугольника. А именно то,
что сумма двух любых сторон больше третьей:
if (a + b > c && a + c
> b && b + c > a)
Реализация алгоритма
Читаем входные
данные.
scanf("%d %d %d", &a, &b, &c);
Если треугольник невырожденный и равнобедренный, то
выводим его периметр.
if ((a == b || b == c || a == c) &&
a + b > c &&
a + c > b && b + c > a)
printf("%d\n", a + b + c);
else
printf("No\n");
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int a = con.nextInt();
int b = con.nextInt();
int c = con.nextInt();
if ((a == b || b == c || a == c) &&
a + b > c && a + c > b && b + c > a)
System.out.println(a + b + c);
else
System.out.println("No");
con.close();
}
}
Python реализация
Читаем входные
данные.
a, b, c = map(int, input().split())
Если треугольник невырожденный и равнобедренный, то
выводим его периметр.
if (a == b or b == c or a == c) and
a + b > c and a + c > b and b + c > a:
print(a + b + c)
else:
print("No")